package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 月用水量汇总对象 water_monthly_usage
 *
 * @author ruoyi
 * @date 2025-09-20
 */
public class WaterMonthlyUsage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 表号 */
    @Excel(name = "表号")
    private String meterNo;

    /** 户号 */
    @Excel(name = "户号")
    private String userId;

    /** 户名 */
    @Excel(name = "户名")
    private String userName;

    /** 年份 */
    @Excel(name = "年份")
    private String year;

    /** 月份(1-12) */
    @Excel(name = "月份(1-12)")
    private String month;

    /** 上次读数 */
    private String lastReading;

    /** 本次读数 */
    private String currentReading;

    /** 月用水量 */
    @Excel(name = "月用水量")
    private Double monthlyConsumption;

    /** 日均用水量 */
    @Excel(name = "日均用水量")
    private BigDecimal averageDailyConsumption;

    /** 日最高用水量 */
    @Excel(name = "日最高用水量")
    private BigDecimal peakDailyConsumption;

    /** 日最高用水量日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "日最高用水量日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date peakDate;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setMeterNo(String meterNo)
    {
        this.meterNo = meterNo;
    }

    public String getMeterNo()
    {
        return meterNo;
    }
    public void setUserId(String userId)
    {
        this.userId = userId;
    }

    public String getUserId()
    {
        return userId;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setYear(String year)
    {
        this.year = year;
    }

    public String getYear()
    {
        return year;
    }

    public String getMonth() {
        return month;
    }

    public void setMonth(String month) {
        this.month = month;
    }

    public void setMonthlyConsumption(Double monthlyConsumption)
    {
        this.monthlyConsumption = monthlyConsumption;
    }

    public Double getMonthlyConsumption()
    {
        return monthlyConsumption;
    }
    public void setAverageDailyConsumption(BigDecimal averageDailyConsumption)
    {
        this.averageDailyConsumption = averageDailyConsumption;
    }

    public BigDecimal getAverageDailyConsumption()
    {
        return averageDailyConsumption;
    }
    public void setPeakDailyConsumption(BigDecimal peakDailyConsumption)
    {
        this.peakDailyConsumption = peakDailyConsumption;
    }

    public BigDecimal getPeakDailyConsumption()
    {
        return peakDailyConsumption;
    }
    public void setPeakDate(Date peakDate)
    {
        this.peakDate = peakDate;
    }

    public Date getPeakDate()
    {
        return peakDate;
    }

    public String getLastReading() {
        return lastReading;
    }

    public void setLastReading(String lastReading) {
        this.lastReading = lastReading;
    }

    public String getCurrentReading() {
        return currentReading;
    }

    public void setCurrentReading(String currentReading) {
        this.currentReading = currentReading;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("meterNo", getMeterNo())
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("year", getYear())
            .append("month", getMonth())
            .append("monthlyConsumption", getMonthlyConsumption())
            .append("averageDailyConsumption", getAverageDailyConsumption())
            .append("peakDailyConsumption", getPeakDailyConsumption())
            .append("peakDate", getPeakDate())
            .append("createTime", getCreateTime())
            .toString();
    }
}
